#include #include #include using namespace std; void nextFit(const vector& w, int C) { cout << "NextFit" << endl; int left = C; int box = 1; cout << "‚ ßùèê " << box << " âõîäßò ïðåäìåòû:" << endl; for (int i = 0; i < w.size(); ++i) { if (left - w[i] >= 0) { left -= w[i]; cout << i+1 << ", âåñîì " << w[i]; cout << endl; } else { box += 1; cout << endl << "‚ ßùèê " << box << " âõîäßò ïðåäìåòû:" << endl; left = C - w[i]; cout << i+1 << ", âåñîì " << w[i]; cout << endl; } } cout << endl; } void firstFit(const vector& w, int C) { cout << "FirstFit" << endl; vector left; vector> boxes; for (int i = 0; i < w.size(); ++i) { bool b = false; for (int j = 0; j < left.size(); ++j) { if (left[j] >= w[i]) { left[j] -= w[i]; boxes[j].push_back(i); b = true; break; } } if (!b) { left.push_back(C-w[i]); vector box = {i}; boxes.push_back(box); } } for (int box = 0; box < boxes.size(); ++box) { cout << "‚ ßùèê " << box+1 << " âõîäßò ïðåäìåòû:" << endl; for (auto el: boxes[box]) { cout << el+1 << ", "; } cout << endl; } } int main() { // your code goes here int n, C; cin >> n >> C; vector w(n); for (int i = 0; i < n; ++i) { cin >> w[i]; } nextFit(w, C); firstFit(w, C); return 0; }